﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SharpCompress.RT.Common
{
    public interface IConvertible
    {
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 Boolean 值。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 Boolean 值。
        bool ToBoolean(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将该实例的值转换为等效的 8 位无符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与该实例的值等效的 8 位无符号整数。
        byte ToByte(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 Unicode 字符。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 Unicode 字符。
        char ToChar(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 System.DateTime。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 System.DateTime 实例。
        DateTime ToDateTime(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 System.Decimal 数字。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 System.Decimal 数字。
        decimal ToDecimal(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的双精度浮点数字。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的双精度浮点数字。
        double ToDouble(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 16 位有符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 16 位有符号整数。
        short ToInt16(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 32 位有符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 32 位有符号整数。
        int ToInt32(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 64 位有符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 64 位有符号整数。
        long ToInt64(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 8 位有符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 8 位有符号整数。
        sbyte ToSByte(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的单精度浮点数字。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的单精度浮点数字。
        float ToSingle(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为等效的 System.String。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与此实例的值等效的 System.String 实例。
        string ToString(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将此实例的值转换为具有等效值的指定 System.Type 的 System.Object。
        //
        // 参数:
        //   conversionType:
        //     要将此实例的值转换为的 System.Type。
        //
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     其值与此实例值等效的 conversionType 类型的 System.Object 实例。
        object ToType(Type conversionType, IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将该实例的值转换为等效的 16 位无符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与该实例的值等效的 16 位无符号整数。
        ushort ToUInt16(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将该实例的值转换为等效的 32 位无符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与该实例的值等效的 32 位无符号整数。
        uint ToUInt32(IFormatProvider provider);
        //
        // 摘要:
        //     使用指定的区域性特定格式设置信息将该实例的值转换为等效的 64 位无符号整数。
        //
        // 参数:
        //   provider:
        //     System.IFormatProvider 接口实现，提供区域性特定的格式设置信息。
        //
        // 返回结果:
        //     与该实例的值等效的 64 位无符号整数。
        ulong ToUInt64(IFormatProvider provider);
    }
}
